package com.liruo.treasureattic.service.url.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liruo.treasureattic.common.model.dto.url.UrlAddReq;
import com.liruo.treasureattic.common.model.dto.url.UrlUpdateReq;
import com.liruo.treasureattic.common.model.entity.TreasureUrl;
import com.liruo.treasureattic.common.model.vo.url.UrlVo;

import java.util.List;

/**
* @author LYM
* @description 针对表【treasure_url(Can be the same level as folder)】的数据库操作Service
* @createDate 2022-10-31 20:29:01
*/
public interface TreasureUrlService extends IService<TreasureUrl> {

    /**
     * name只检测长度
     */
    long addUrl(UrlAddReq urlAddReq);
    /**
     * 因为有导入的url， 所以就不检查name了，只检测name的长度， 不需要进行拿出数据库的来对比是否需要更新
     */
    void updateUrl(UrlUpdateReq urlUpdateReq);
    /**
     * 要同时减少url的父folder的url_cnt和默认folder的url_cnt
     */
    void delUrl(long urlId);

    /**
     *
     * @return 一个folder的urls
     */
    List<UrlVo> getUrlByFid(Long fid);


    //batch 操作

    /**
     * 不与旧数据对比
     */
    void batchUpdate(List<UrlUpdateReq> batchUpdateUrlList);

    void batchDelUrl(List<Long> deleteUrlIds);
}
